import axios from 'axios';
import { ElMessage } from 'element-plus';
import router from '@/router';

//创建request实例
const request = axios.create({
    baseURL: "/api",
    timeout: 600000
});

request.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么：从localStorage里获取的那个用户信息中的token
    const loginInfoStr = localStorage.getItem("loginInfo");
    if (loginInfoStr) {
        //loginInfoStr：是json格式的字符串，而不是json对象（js对象），需要转换成json对象。 JSON.parse(json格式字符串)
        const loginInfo = JSON.parse(loginInfoStr);
        config.headers.token = loginInfo.token;
    }
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

//处理axios的响应结果
request.interceptors.response.use((response)=>{
    return response.data;
}, (error)=>{
    //如果响应状态码是401：弹窗提示“请重新登录”，然后跳转到登录页面
    if (error.response.status==401) {
        ElMessage.error("请重新登录");
        router.push("/login");
    }
    return Promise.reject(error);
});

export default request;